Web-based visualization mash-ups for industrial automation

ABSTRACT

A visualization system that generates visual mash-ups for industrial automation includes a ash-up component that combines output from a subset of disparate sources into a common interface. The disparate sources include at least one of equipment, computers, or devices within an industrial automation environment. A visualization component generates and displays a mash-up visualization that includes information associated with the common interface.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of co-pending U.S. patent applicationSer. No. 11/863,111, entitled “WEB-BASED VISUALIZATION MASH-UPS FORINDUSTRIAL AUTOMATION,” filed on Sep. 27, 2007, the entirety of which isincorporated herein by reference.

TECHNICAL FIELD

The subject invention relates generally to industrial control systems,and more particularly to various automated interfaces that interact withindustrial control systems based in part on detected factors such as auser's role, identity, location, and so forth.

BACKGROUND

Industrial controllers are special-purpose computers utilized forcontrolling industrial processes, manufacturing equipment, and otherfactory automation, such as data collection or networked systems. At thecore of the industrial control system, is a logic processor such as aProgrammable Logic Controller (PLC) or PC-based controller. ProgrammableLogic Controllers for instance, are programmed by systems designers tooperate manufacturing processes via user-designed logic programs or userprograms. The user programs are stored in memory and generally executedby the PLC in a sequential manner although instruction jumping, loopingand interrupt routines, for example, are also common. Associated withthe user program are a plurality of memory elements or variables thatprovide dynamics to PLC operations and programs. Differences in PLCs aretypically dependent on the number of Input/Output (I/O) they canprocess, amount of memory, number and type of instructions, and speed ofthe PLC central processing unit (CPU).

One area that has grown in recent years is the need for humans tointeract with industrial control systems in the course of businessoperations. This includes employment of human machine interfaces (HMI)to facilitate operations with such systems, where the HMI can beprovided as a graphical user interface in one form. TraditionalHMI/automation control systems are generally limited in their ability tomake users aware of situations that require their attention or ofinformation that may be of interest to them relative to their currenttasks. Where such mechanisms do exist, they tend to be either overlyintrusive (e.g., interrupting the user's current activity by “poppingup” an alarm display on top of whatever they were currently looking at)or not informative enough (e.g., indicating that something requires theuser's attention but not providing information about what). Often times,the user must navigate to another display (e.g., a “detail screen”,“alarm summary” or “help screen”) to determine the nature of theinformation or even to determine whether such information exists. As canbe appreciated, navigation and dealing with pop-ups is time consumingand costly.

In other conventional HMI/automation control systems, information thatis presented to users must be preconfigured by a control system designerand must be explicitly requested the user. For example, when an alarmcondition occurs and the user wants additional information to help themdiagnose/resolve the issue, they must explicitly ask the system toprovide it. For this to occur, several conditions should be true: (1)when the control system was designed, the designer must have thought tomake that specific information available to that user/role and for thatspecific situation; (2) the user must know that such information exists;and (3) the user must ask the system to fetch and display thatinformation.

SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding of some aspects described herein. This summary is not anextensive overview nor is intended to identify key/critical elements orto delineate the scope of the various aspects described herein. Its solepurpose is to present some concepts in a simplified form as a prelude tothe more detailed description that is presented later.

Various interface applications are provided to facilitate more efficientinteractions with industrial automation systems. In one aspect, systemsand methods are provided to mitigate navigation issues with humanmachine interfaces (HMI) and/or pop-up problems associated with suchinterfaces. By exploiting situation-specific data or “information ofinterest”, e.g., based on factors such as the user's identity, role,location (logical or physical), current task, current view, and soforth, an HMI can be provided to superimpose such situation-specificinformation upon the user's current view of the automation controlsystem (“base presentation”) in a manner that communicates the essenceof information as well as its importance/priority/urgency withoutcompletely dominating the user's attention or interrupting their currentinteraction with the system. In this manner, problems dealing withexcessive navigation or obtrusive displays can be mitigated.

In another aspect, systems and methods are provided for mitigatingpre-configuration interface issues by automatically providing users withrelevant, situation-specific information. This includes automaticallylocating information that may be of interest/use in a user's currentsituation by matching attributes such as the user's identity, role,location (logical or physical), current activity, similar previous(historical) situations/activities, and so forth with other data such asdevice/equipment locations, device/equipment status,user/role/situation-specific reports, user-documentation, trainingmanuals, and so forth. Thus, the user is automatically provided a richset of information related to their current task/situation withoutgenerally requiring that person/situation/information mappings bepredefined by control system designers.

To the accomplishment of the foregoing and related ends, certainillustrative aspects are described herein in connection with thefollowing description and the annexed drawings. These aspects areindicative of various ways which can be practiced, all of which areintended to be covered herein. Other advantages and novel features maybecome apparent from the following detailed description when consideredin conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a visualization system for generating customizedvisualizations in an industrial automation environment.

FIG. 2 illustrates one particular embodiment of a visualization system.

FIG. 3 illustrates an embodiment where a data store stores informationand programs that facilitate generating rich visualizations inaccordance with aspects described herein.

FIG. 4 illustrates an embodiment of a visualization component.

FIG. 5 illustrates a methodology for presenting customized visualizationof information.

FIG. 6 illustrates one particular embodiment in connection with amethodology for generating visualizations associated with alarms.

FIG. 7 illustrates an embodiment of a methodology that relates tocustomizing a visualization associated with operation of or interactionwith a machine.

FIG. 8 illustrates an embodiment of a system that generates customizedvisualizations as a function of mash-ups of display objects.

FIG. 9 is a schematic illustration of an embodiment of a mash-upinterface.

FIG. 10 depicts a schematic representation of a mash-up interface inaccordance with an aspect.

FIG. 11 illustrates an embodiment of a system that includes a bindingcomponent.

FIG. 12 illustrates an embodiment of a system that includes a stitchingcomponent.

FIG. 13 illustrates an embodiment of a system that includes anoptimization component.

FIG. 14 illustrates an embodiment of a methodology in connection withdisplaying mash-ups.

FIG. 15 illustrates a methodology in connection with augmenting anexisting mash-up.

FIG. 16 illustrates an embodiment of a system that regulates resolutionas a function of zooming in or out of a display area, or panning acrossa display area.

FIG. 17 illustrates an embodiment of a system that includes a contextcomponent.

FIG. 18 depicts an embodiment of system that includes a searchcomponent.

FIG. 19 is a flow diagram describing a high-level methodology inconnection an embodiment.

FIG. 20 is a flow diagram describing a high-level methodology inconnection with another embodiment.

FIGS. 21 and 22 illustrate an example of aforementioned resolutionfeatures in accordance with embodiments.

FIG. 23 illustrates an embodiment of a system that includes a viewcomponent and a set of cameras.

FIG. 24 illustrates another embodiment of system that includes atransition component.

FIG. 25 illustrates a methodology in accordance with panning across anobject using real-time image data.

FIG. 26 illustrates an embodiment that facilitates real-time visualcollaboration in an industrial automation environment.

FIG. 27 illustrates an embodiment of a system that includes avirtualization component.

FIG. 28 illustrates an embodiment of system where X number of multipleusers (X being an integer) can collaborate with one another viarespective displays, and visually share information regarding aplurality of zones as well as extrinsic data.

FIG. 29 illustrates a high-level methodology in connection withcollaboration of users and equipment.

FIGS. 30-31 illustrate an exemplary display that a visualizationcomponent embodiment can render.

FIG. 32 depicts an embodiment for dynamically presenting information ofinterest to one or more users in an industrial automation environment.

FIGS. 33 and 34 illustrate visualizations in accordance with aspectsdescribed herein.

FIG. 35 illustrates a semi-transparent dash board that can be overlaidon other display objects to provide information to a user in aglanceable manner.

FIG. 36 illustrates an example interface that provides key performanceindicator (KPI) information.

FIGS. 37-42 illustrate example interfaces in accordance with embodimentsdescribed herein.

FIG. 43 illustrates one particular embodiment of a visualization system.

FIG. 44 is a high-level diagram illustrating one particularvisualization system in connection with an embodiment.

FIGS. 45-52 illustrate various visualizations in accordance withembodiments described herein.

FIG. 53 illustrates an embodiment of system that includes a referencecomponent.

FIGS. 54-58 illustrate various visualizations in accordance withembodiments described herein.

FIG. 59 illustrates a high-level methodology in accordance with aspectsdescribed herein.

FIG. 60 illustrates a surface based computing system for an industrialautomation environment.

FIG. 61 illustrates a high-level methodology in accordance with aspectsdescribed herein.

FIGS. 62 and 63 illustrate example computing environments.

DETAILED DESCRIPTION

Systems and methods are provided that enable various interfaceapplications that more efficiently communicate data to users in anindustrial control system. In one aspect, an industrial automationsystem is provided. The system includes a base presentation component todisplay one or more elements of an industrial control environment.Various display items can be dynamically superimposed on the basepresentation component to provide industrial control information to auser. In another aspect of the industrial automation system, a locationcomponent is provided to identify a physical or a virtual location for auser in an industrial control environment. This can include a contextcomponent to determine at least one attribute for the user in view ofthe physical or virtual location. A presentation component then providesinformation to the user based in part on the physical or virtuallocation and the determined attribute.

It is noted that as used in this application, terms such as “component,”“display,” “interface,” and the like are intended to refer to acomputer-related entity, either hardware, a combination of hardware andsoftware, software, or software in execution as applied to an automationsystem for industrial control. For example, a component may be, but isnot limited to being, a process running on a processor, a processor, anobject, an executable, a thread of execution, a program and a computer.By way of illustration, both an application running on a server and theserver can be components. One or more components may reside within aprocess and/or thread of execution and a component may be localized onone computer and/or distributed between two or more computers,industrial controllers, and/or modules communicating therewith.

As used herein, the term to “infer” or “inference” refer generally tothe process of reasoning about or inferring states of the system,environment, user, and/or intent from a set of observations as capturedvia events and/or data. Captured data and events can include user data,device data, environment data, data from sensors, sensor data,application data, implicit and explicit data, etc. Inference can beemployed to identify a specific context or action, or can generate aprobability distribution over states, for example. The inference can beprobabilistic, that is, the computation of a probability distributionover states of interest based on a consideration of data and events.Inference can also refer to techniques employed for composinghigher-level events from a set of events and/or data. Such inferenceresults in the construction of new events or actions from a set ofobserved events and/or stored event data, whether or not the events arecorrelated in close temporal proximity, and whether the events and datacome from one or several event and data sources.

It is to be appreciated that a variety of artificial intelligence (AI)tools and system can be employed in connection with embodimentsdescribed and claimed herein. For example, adaptive user interface (UI)machine learning and reasoning (MLR) can be employed to infer on behalfof an entity (e.g., user, group of users, device, system, business, . .. ). More particularly, a MLR component can learn by monitoring context,decisions being made, and user feedback. The MLR component can take asinput aggregate learned rules (from other users), context of a mostrecent decision, rules involved in the most recent decision and decisionreached, any explicit user feedback, any implicit feedback that can beestimated, and current set of learned rules. From these inputs, the MLRcomponent can produce (and/or update) a new set of learned rules 1204.

In addition to establishing the learned rules, the MLR component canfacilitate automating one or more novel features in accordance with theinnovation described herein. For example, carious embodiments (e.g., inconnection with establishing learned rules) can employ various MLR-basedschemes for carrying out various aspects thereof A process fordetermining implicit feedback can be facilitated via an automaticclassifier system and process. A classifier is a function that maps aninput attribute vector, x=(x1, x2, x3, x4, xn), to a confidence that theinput belongs to a class, that is, f(x)=confidence(class). Suchclassification can employ a probabilistic, statistical and/or decisiontheoretic-based analysis (e.g., factoring into the analysis utilitiesand costs) to prognose or infer an action that a user desires to beautomatically performed.

A support vector machine (SVM) is an example of a classifier that can beemployed. The SVM operates by finding a hypersurface in the space ofpossible inputs, which the hypersurface attempts to split the triggeringcriteria from the non-triggering events. Intuitively, this makes theclassification correct for testing data that is near, but not identicalto training data. By defining and applying a kernel function to theinput data, the SVM can learn a non-linear hypersurface. Other directedand undirected model classification approaches include, e.g., decisiontrees, neural networks, fuzzy logic models, naïve Bayes, Bayesiannetworks and other probabilistic classification models providingdifferent patterns of independence can be employed.

As will be readily appreciated from the subject specification, theinnovation can employ classifiers that are explicitly trained (e.g., viaa generic training data) as well as implicitly trained (e.g., viaobserving user behavior, receiving extrinsic information). For example,the parameters on an SVM are estimated via a learning or training phase.Thus, the classifier(s) can be used to automatically learn and perform anumber of functions, including but not limited to determining accordingto a predetermined criteria how/if implicit feedback should be employedin the way of a rule.

It is noted that the interfaces described herein can include a GraphicalUser Interface (GUI) to interact with the various components forproviding industrial control information to users. This can includesubstantially any type of application that sends, retrieves, processes,and/or manipulates factory input data, receives, displays, formats,and/or communicates output data, and/or facilitates operation of theenterprise. For example, such interfaces can also be associated with anengine, editor tool or web browser although other type applications canbe utilized. The GUI can include a display having one or more displayobjects (not shown) including such aspects as configurable icons,buttons, sliders, input boxes, selection options, menus, tabs and soforth having multiple configurable dimensions, shapes, colors, text,data and sounds to facilitate operations with the interfaces. Inaddition, the GUI can also include a plurality of other inputs orcontrols for adjusting and configuring one or more aspects. This caninclude receiving user commands from a mouse, keyboard, speech input,web site, remote web service and/or other device such as a camera orvideo input to affect or modify operations of the GUI.

It is also noted that the term PLC or controller as used herein caninclude functionality that can be shared across multiple components,systems, and or networks. One or more PLCs or controllers cancommunicate and cooperate with various network devices across a network.This can include substantially any type of control, communicationsmodule, computer, I/O device, Human Machine Interface (HMI)) thatcommunicate via the network which includes control, automation, and/orpublic networks. The PLC can also communicate to and control variousother devices such as Input/Output modules including Analog, Digital,Programmed/Intelligent I/O modules, other programmable controllers,communications modules, and the like. The network (not shown) caninclude public networks such as the Internet, Intranets, and automationnetworks such as Control and Information Protocol (CIP) networksincluding DeviceNet and ControlNet. Other networks include Ethernet,DH/DH+, Remote I/O, Fieldbus, Modbus, Profibus, wireless networks,serial protocols, and so forth. In addition, the network devices caninclude various possibilities (hardware and/or software components).These include components such as switches with virtual local areanetwork (VLAN) capability, LANs, WANs, proxies, gateways, routers,firewalls, virtual private network (VPN) devices, servers, clients,computers, configuration tools, monitoring tools, and/or other devices.

Dynamically Generating Visualizations in Industrial AutomationEnvironment as a Function of Context and State Information

Referring initially to FIG. 1, a visualization system 100 for generatinga customized visualization in an industrial automation environment isdepicted. It should be appreciated that generating visualizations in anindustrial automation environment is very different from doing so in ageneral purpose computing environment. For example, down-time andlatency tolerance levels between such environments are vastly different.Individuals tolerate at a fair frequency lock-ups, delayed images, etc.in a general purpose computing environment; however, even severalseconds of down-time in an industrial automation environment can lead tosubstantial loss in revenue as well as create hazardous conditionswithin a factory. Consequently, market forces have dictated that HMIsystems within an industrial automation environment remain light-weight,fast, not computationally expensive, and thus robust. Counter toconventional wisdom in the industrial automation domain, innovationsdescribed herein provide for highly complex and sophisticated HMIsystems that mitigate down-time, are robust, and facilitate maximizingan operator experience within an industrial automation environment.

It is contemplated that visualization system 100 can form at least partof a human machine interface (HMI), but is not limited thereto. Forexample, the visualization system 100 can be employed to facilitateviewing and interaction with data related to automation control systems,devices, and/or associated equipment (collectively referred to herein asan automation device(s)) forming part of a production environment.Visualization system 100 includes interface component 102, contextcomponent 104, visualization component 106, display component 108, anddata store 110.

The interaction component 102 receives input concerning displayedobjects and information. Interaction component 102 can receive inputfrom a user, where user input can correspond to object identification,selection and/or interaction therewith. Various identificationmechanisms can be employed. For example, user input can be based onpositioning and/or clicking of a mouse, stylus, or trackball, and/ordepression of keys on a keyboard or keypad with respect to displayedinformation. Furthermore, the display device may be by a touch screendevice such that identification can be made based on touching agraphical object. Other input devices are also contemplated includingbut not limited to gesture detection mechanisms (e.g., pointing, gazing. . . ) and voice recognition.

In addition to object or information selection, input can correspond toentry or modification of data. Such input can affect the display and/orautomation devices. For instance, a user could alter the display format,color or the like. Additionally or alternatively, a user could modifyautomation device parameters. By way of example and not limitation, aconveyor motor speed could be increased, decreased or halted. It shouldbe noted that input need not come solely from a user, it can also beprovided by automation devices. For example, warnings, alarms, andmaintenance schedule information, among other things, can be providedwith respect to displayed devices.

Context component 104 can detect, infer or determine context informationregarding an entity. Such information can include but is not limited toan entity's identity, role, location (logical or physical), currentactivity, similar or previous interactions with automation devices,context data pertaining to automation devices including control systems,devices and associated equipment. Device context data can include but isnot limited to logical/physical locations and operating status (e.g.,on/off, healthy/faulty . . . ). The context component 104 can providethe determined, inferred, detected or otherwise acquired context data tovisualization component 106, which can employ such data in connectionwith deciding on which base presentations and or items to display aswell as respective format and position.

By way of example, as an entity employs visualization system 100(physically or virtually), the system 100 can determine and track theiridentity, their roles and responsibilities, their areas or regions ofinterest/responsibility and their activities. Similarly, the system canmaintain information about devices/equipment that make up the automationcontrol system, information such as logical/physical locations,operating status and the types of information that are of interest todifferent persons/roles. The system is then able to createmappings/linkages between these two sets of information and thusidentify information germane to a user's current location andactivities, among other things.

Display component 108 can render a display to and/or receive data from adisplay device or component such as a monitor, television, computer,mobile device, web browser or the like. In particular, automationdevices and information or data concerning automation devices can bepresented graphically in an easily comprehensible manner. The data canbe presented as one or more of alphanumeric characters, graphics,animations, audio and video. Furthermore, the data can be static orupdated dynamically to provide information in real-time as changes orevents occur. Still further yet, one can interact with the interface 100via the interface component 102.

The display component 110 is also communicatively coupled tovisualization component 106, which can generate, receive, retrieve orotherwise obtain a graphical representation of a production environmentincluding one or more objects representing, inter alia, devices,information pertaining to devices (e.g., gages, thermometers . . . ) andthe presentation itself. In accordance with one aspect, a basepresentation provided by visualization component 106 can form all orpart of a complete display rendered by the display component 108. Inaddition to the base presentation, one or more items can form part ofthe display.

An item is a graphical element or object that is superimposed on atleast part of the base presentation or outside the boundaries of thebase presentation. The item can provide information of interest and cancorrespond to an icon, a thumbnail, a dialog box, a tool tip, and awidget, among other things. The items can be transparent, translucent,or opaque be of various sizes, color, brightness, and so forth as wellas be animated for example fading in and out. Icons items can beutilized to communicate the type of information being presented.Thumbnails can be employed to present an overview of information oressential content. Thumbnails as well as other items can be a miniaturebut legible representation of information being presented and can bestatic or dynamically updating. Effects such as fade in and out can beused to add or remove superimposed information without overlydistracting a user's attention. In addition, items can gradually becomelarger/smaller, brighter/dimmer, more/less opaque or change color orposition to attract more or less of a user's attention, therebyindicating increasing or decreasing importance of the informationprovided thereby. The positions of the items can also be used to conveyone or more of locations of equipment relative to a user's currentlocation or view, the position or index of a current task within asequence of tasks, the ability to navigate forward or back to apreviously visited presentation or view and the like. The user can alsoexecute some measure of control over the use/meaning of these variouspresentation techniques, for example via interface component 102.

If desired, a user can choose, via a variety of selection methods ormechanisms (e.g., clicking, hovering, pointing . . . ), to direct theirattention to one or more items. In this case the selected information,or item providing such information, can become prominent within thepresentation, allowing the user to view and interact with it in fulldetail. In some cases, the information may change from static toactive/dynamically updating upon selection. When the focus of thepresentation changes in such a manner, different information may becomemore/less interesting or may no longer be of interest at all. Thus, boththe base presentation and the set of one or more items providinginteresting information can be updated when a user selects a new view.

Data store 110 can be any suitable data storage device (e.g., randomaccess memory, read only memory, hard disk, flash memory, opticalmemory), relational database, media, system, or combination thereof. Thedata store 110 can store information, programs, AI systems and the likein connection with the visualization system 100 carrying outfunctionalities described herein. For example, expert systems, expertrules, trained classifiers, entity profiles, neural networks, look-uptables, etc. can be stored in data store 100.

FIG. 2 illustrates one particular embodiment of visualization system100. Context component 104 includes an AI component 202 and a stateidentification component (state identifier) 204. The AI component 202can employ principles of artificial intelligence to facilitateautomatically performing various aspects (e.g., transitioningcommunications session, analyzing resources, extrinsic information, userstate, and preferences, risk assessment, entity preferences, optimizeddecision making, . . . ) as described herein. AI component 202 canoptionally include an inference component that can further enhanceautomated aspects of the AI component utilizing in part inference basedschemes to facilitate inferring intended actions to be performed at agiven time and state. The AI-based aspects of the invention can beeffected via any suitable machine-learning based technique and/orstatistical-based techniques and/or probabilistic-based techniques. Forexample, the use of expert systems, fuzzy logic, support vector machines(SVMs), Hidden Markov Models (HMMs), greedy search algorithms,rule-based systems, Bayesian models (e.g., Bayesian networks), neuralnetworks, other non-linear training techniques, data fusion,utility-based analytical systems, systems employing Bayesian models,etc. are contemplated and are intended to fall within the scope of thehereto appended claims.

State identifier 204 can identify or determine available resources(e.g., service providers, hardware, software, devices, systems,networks, etc.). State information (e.g., work performed, tasks, goals,priorities, context, communications, requirements of communications,location, current used resources, available resources, preferences,anticipated upcoming change in entity state, resources, change inenvironment, etc.) is determined or inferred. Given the determined orinferred state and identified available resources, a determination ismade regarding whether or not to transition a visualization session fromthe current set of resources to another set of resources. Thisdetermination can include a utility-based analysis that factors cost ofmaking a transition (e.g., loss of fidelity, loss of information, userannoyance, interrupting a session, disrupting work-flow, increasingdown-time, creating a hazard, contributing to confusion, entity has notfully processed current set of information and requires more time, etc.)against the potential benefit (e.g., better quality of service, usersatisfaction, saving money, making available enhanced functionalitiesassociated with a new set of resources, optimization of work-flow, . . .). This determination can also include a cost-benefit analysis. The costcan be measured by such factors as the power consumption, computationalor bandwidth costs, lost revenues or product, under-utilized resources,operator frustration . . . . The benefit can be measured by such factorsas the quality of the service, the data rate, the latency, etc. Thedecision can be made based on a probabilistic-based analysis where thetransition is initiated if a confidence level is high, and not initiatedif the confidence level if low. As discussed above, AI-based techniques(including machine-learning systems) can be employed in connection withsuch determination or inference. Alternatively, a more simple rule-basedprocess can be employed where if certain conditions are satisfied thetransition will occur, and if not the transition will not be initiated.The transition making determination can be automated, semi-automated, ormanual.

FIG. 3 illustrates an embodiment where data store 110 stores informationand programs that facilitate generating rich visualizations inaccordance with aspects described herein. Data store 110 can includehistorical data, for example relating to previous visualizationsutilized given certain context/state. Use of such historical data (whichcan include cached web pages, cookies, and the like) can facilitatequickly conveying relevant visualizations germane to a set of currentconditions that coincide with historical conditions. Likewise,historical data can be used in connection with filtering out poor ornon-relevant visualizations given historical use and known outcomesassociated with such visualizations. It is to be appreciated thattrained (explicitly or implicitly) machine learning systems (MLS) can bestored in the data store 110 to facilitate converging on desired orproper visualizations given a set of conditions.

Profiles (e.g., user profiles, device profiles, templates, eventprofiles, alarm profiles, business profiles, etc.) 302 can also be savedin the data store 302 and employed in connection with customizing avisualization session in accordance with roles, preferences, accessrights, goals, conditions, etc. Rules (e.g., policies, rules, expertrules, expert systems, look-up tables, neural networks, etc.) can beemployed to carry-out a set of pre-defined actions given a set ofinformation.

The visualization system 100 can dynamically tailor a visualizationexperience to optimize operator interaction in an industrial automationenvironment. For example, given a set of conditions (e.g., a subset ofany of the following: alarms, location, type of machinery, state ofsystem, environmental conditions, user, user role, user access, userstate, cognitive load of the user, capacity of user to consumeinformation, preferences, goals, intent, costs, benefits, etc.), thesystem 100 can automatically tune a visualization to be optimized, giventhe set of conditions, to meet the user's needs and facilitate achievinggoals or requirements.

FIG. 4 illustrates another embodiment where visualization component 106includes rendering component 402, device analyzer 404, and contentformatter 406. As a function of conditions noted supra, and otherfactors, the visualization component 106 can reformat data in connectionwith customizing a visualization. Device analyzer can determine or infercapabilities of a device or system intended to render the visualization,and as a function of such capabilities the visualization can beselectively tailored. It is to be appreciated that environment or useconditions associated with the rendering device can also be a factorthat is considered. For example, the visualization can be tailored as afunction of lighting conditions, or even vision capabilities of anoperator. Moreover, nature of the content to be displayed or devicerendering capabilities (e.g., screen real estate, screen resolution,etc.) can be factored. Content formatter 406 can modify color, size,etc. of content displayed as well as prune content or resolution tooptimize conveyance of information to an entity in a glanceable manner(e.g., perceiving information at a glance, utilizing pre-attentiveprocessing to display information, facilitating a user to perceiveinformation and not significantly impact cognitive load).

Accordingly, system 100 provides for a rich customized visualization inan industrial automation environment that can be a function, forexample, of a subset of the following factors: entity context, workcontext, information content, entity goals, system optimization,work-flow optimization, rendering device capabilities, cognitive load ofentity, processing capabilities, bandwidth, available resources, lack ofresources, utility-based analysis, inference, entity preferences, entityroles, security, screen real estate, priority of information, relevanceof information, content filtering, context filter, ambient conditions,machine or process prognostics information, machine or processdiagnostics information, revenue generation, potential or actual systemor device downtime, scheduling, entity capacity to understandinformation, entity limitations on understanding information, alerts,emergencies, security, authentication, etc.

FIG. 5 illustrates a methodology 500 for presenting customizedvisualization of information. While, for purposes of simplicity ofexplanation, the methodology is shown and described as a series of acts,it is to be understood and appreciated that the methodology is notlimited by the order of acts, as some acts may occur in different ordersand/or concurrently with other acts from that shown and describedherein. For example, those skilled in the art will understand andappreciate that a methodology could alternatively be represented as aseries of interrelated states or events, such as in a state diagram.Moreover, not all illustrated acts may be required to implement amethodology as described herein.

The method 500 can identify the information of interest to one or moreuser without prompting or requesting such interest information from theuser(s). The inference can be based, for example, on identity, role,location, and/or on text in a production facility by matching the user'slocation, context, and/or role with the location and/or status ofdevice/equipment/system being monitored.

At 502 context of an information session is inferred or determined. Theinference or determination can be a based on content of information,context of a sending entity or recipient entity, extrinsic information,etc. Learning context of the session substantially facilitatesgenerating a visualization that is meaningful to the goals of the entityor session. At 504 entity intent is inferred or determined. A variety ofinformation sources or types can be employed in connection with thisact. For example, roles of the entity, access rights, priorinteractions, what the entity is currently doing, entity preferences,historical data, entity declaration of intent, . . . can be employed inconnection with inferring or determining intent of the entity. At 506data associated with acts 502 and 504 are analyzed. A variety ofanalytical techniques (e.g., probabilistic, statistical, rules-based,utility-based analysis, look-up table . . . ) can be employed inconnection with analyzing the data in connection with generating arelevant and meaningful visualization in accordance with embodimentsdescribed herein. For example, confidence levels can be calculated inconnection with inferred context or intent, and if the confidence levelmeets a particular threshold (e.g., >80% confidence) automated actioncan be taken based on the inference. In addition or alternatively, forexample, a utility-based analysis can be performed that factors the costof taking an incorrect action in view of the benefits associated withthe action being correct. If the benefits exceed the costs, an actionmay be taken. At 508, a determination is made as to whether or not thedata is in an acceptable format. If not the data is reformatted at 510.If yes, the information is presented to the user as a rich, customizedvisualization that is a function of context, state, or preferences.

FIG. 6 illustrates one particular embodiment in connection with amethodology 600 for generating visualizations associated with alarms. At602, context associated with a communication (e.g., message, session,alarm, event) is inferred or determined. For example, content associatedwith the communication can be analyzed (e.g., via key words, MLStechniques, classifiers, inflection of voice, priority settings, . . . )to facilitate inferring or determining context associated with acommunication. At 604, user context or state if inferred or determined.At 606, device capabilities are inferred or determined. At 608, alarmdata is reformatted so that it can be delivered in accordance withnature of the alarm, user context or state, user role, cognitivecapability, and device capability. Once the data is re-formatted tooptimize delivery and consumption thereof, the formatted data isdelivered to the rendering device.

Thus, alarm data is analyzed and re-formatted so as to facilitateoptimizing delivery of the alarm information to a user and particulardevice being employed. For example, if the user is at a remote locationwith a lot of ambient noise, and only a cell phone is available, thealarm would be delivered as a text message rather than relying onaudible broadcast (given the excessive ambient noise which could hampera user fully interpreting an audio delivery of the alarm information).Moreover, given limited screen real estate associated with the cellphone, the alarm information may be truncated so as to focus on mostrelevant language (e.g., alarm, location, when, where, status). On theother hand, if the user was in an office in front of a multi-screencomputer system with a broadband connection, the alarm information maybe provided as text, audio, images, video, chat sessions, etc. sincethere are more resources to utilize to convey the information as well asprovide for the user to react to the alarm information.

FIG. 7 illustrates an embodiment of a methodology 700 that relates tocustomizing a visualization associated with operation of or interactionwith a machine. At 702, a user is authenticated with the machine. Anysuitable scheme for authenticating the user (e.g., password, biometrics,RFID, voice recognition, pattern recognition, retinal scan, . . . ) canbe employed to satisfactorily identify an individual seeking access tothe machine. The authenticating act can also set access rights andprivileges associated with interaction with the machine. At 704, usercontext or state is inferred or determined. At 706, user intent or goalsis inferred or determined. At 708, machine operating state isdetermined. Based on acts 702-708, a customized visualization isgenerated to facilitate the user achieving his/her intended goal.

The methodology allows for a user, upon authentication to the machine,to have a rich, customized visualization generated that facilitatesachieving his/her goals. For example, different visualizations would bepresented as a function of task at hand, operator role, operatorpreferences, context of the operation, state of the machine, accessrights, strengths or weaknesses of the operator, operator cognitiveload, extrinsic factors, complexity of task, duration of task, upcomingtasks, past tasks, etc.

Web-based Visualization Mash-Ups for Industrial Automation

FIG. 8 illustrates an embodiment of a system 800 that generatescustomized visualizations as a function of mash-ups of display objects(e.g., web pages, windows, portals, video, images, text boxes, pop-ups,alerts, etc.). Through use of mash-ups (e.g., a collection ofinformation from different sources), a rich customized visualization canbe generated that allows a user to leverage information, from a varietyof sources, through a common integrated interface. The system 800includes a mash-up component 802 that provides for a user to associate aplurality of different sources and combine output from such sources intoa common interface. For example, a user can designate a variety ofsources to use (e.g., alarm services, network health, workflowapplications, real-time video feeds, prognostic data, diagnostic data,real-time machine operation data, remote web services, analytical tools,search engines, network or device health monitors, instructionalsources, communication sources . . . ) in connection with generating ahighly glanceable interface that facilitates the user receivingsubstantially all desired information through a common interface that isdesigned to optimize consumption of the information in accordance withthe user's needs, context, preferences, capabilities, etc.

Data store 804 can store information such as source address, filters,classifiers, preferences, profiles, design layout information, rules,historical data, and other information that can facilitate generationand execution of the mash-up. Visualization component 806 generates amash-up visualization that includes information from the multiplesources.

FIG. 9 is a schematic illustration of an embodiment of a mash-upinterface 900. The interface include P number of display objects, Mnumber of interface components, and Z number of functionality components(P, M, and Z are respectively integer values). The display objects 902can display a variety of visualizations (e.g., text, video, images, webpages, etc.). The interface components 904 provide for a user tointeract with systems, sources, devices, and the like. For example, theinterface components can include interfaces for receiving user inputs(e.g., key strokes, text, audio, visual commands, voice, pen inputs, . .. ). The functionality components 906 can be any of a variety offunctional blocks that can carry out various functionalities. It is tobe appreciated that the display objects, interface components, andfunctionality components can optionally be combined, or provideoverlapping features/functionalities of one another. Users can designatesets of these components 902, 904, 906 to employ together as part of acommon interface.

FIG. 10 depicts a schematic representation of mash-up interface 900. Ascan be seen, size of display objects, interface components, andfunctionality components can be selectively set, or dynamically adjustedto optimize an interface given a set of conditions. Moreover, displayobjects, functionality components and interface components can besub-mashed 1002 to provide aggregated functionalities associated withthe respectively combined elements.

FIG. 11 illustrates an embodiment of system 800 that includes a bindingcomponent. The binding component 1102 provides for binding informationfrom different sources so that an aggregate of information from thevarious sources appears as if it is coming from a single source. Bindingcomponent 1102 can be employed to bind program variables to data fromoutside sources. For instance, data corresponding to an automateddevice's temperature stored either in automated device memory or incentralized data storage 120 can be bound to a temperature variable 320in the interactive program. Binding data in this manner enablesreal-time updates and display of changing data. Functions can also bebound to manipulate received data to produce rich descriptions ofautomated device status, performance, and health as well as provide themeans to create, update, monitor, transmit and extract data from aplurality of sources including storage devices, and automated device(s).For example, functions can be employed to monitor a device's temperatureand power, compare those values to acceptable values (e.g., provided bya manufacturer via a web service or determined by the function itself),and produce an alert indicating the health status of a device (e.g.,excellent, good, poor, dangerous . . . ). Furthermore, it should beappreciated that more complex functions can be tied in using bindingcomponent 1102 to facilitate improved execution time and real-timedisplay. For instance, complex device diagnostic/prognostic analysisutilizing artificial intelligence techniques such as Bayesian networksand the like can be executed by a server (not shown) associated with adata store (e.g., upon clicking a button in the interface), the resultof such analysis being linked to one or more interactive programvariables, which can then be used to display the result.

FIG. 12 illustrates an embodiment of system 800 that includes astitching component 1202. The stitching component 1202 provides forstitching data from different sources so that an aggregate ofinformation from the various sources appears as if it is coming from asingle source. Moreover, certain images or views can be super-imposed,overlaid, or integrated with other images or views. The stitchingcomponent can dynamically combine multiple images to produce a panoramaor larger image. In one particular aspect, the stitching componentinterpolates a final image where component images are not in precisealignment. The stitching component 1202 can analyze, for example,translation and rotation between any two sequencing images (e.g., LucasKanade method, or the like). The images are stabilized so that every twoimages differentiate from each other only in their horizontal component.A panorama image is then stitched from the images. The stitching can bedone by combining strips from each image. In one embodiment, base imagesare taken from a same point in space—they are then arranged into atypically spherical projection by matching edges of the images to eachother. Often adjoining areas of the component images are matched forcolor, contrast and brightness to avoid the stitched parts being easilynoticeable due to otherwise easily visible variations between theimages.

FIG. 13 illustrates an embodiment of system 800 that includes anoptimization component 1302. The optimization component 1302 facilitatesarrangement of items or objects within the mash-up to optimize themash-up in connection with desired goals or uses. For example, ifcertain display objects are utilizing a significant amount of bandwidthand slowing down overall system resources, the optimization componentcan modify frequency of refresh, or filter non-relevant data, resizedisplay objects, turn-off display objects, etc. Moreover, theoptimization component can dynamically reposition, re-size, re-orient,display objects as a function of determined or inferred userpreferences, needs, priorities, or goals, for example. AI basedtechniques can be employed to explicitly or implicitly train theoptimization component to automated actions in accordance withparticular events, states, conditions, extrinsic information, on-goingactions, etc.

In view of exemplary aspects described herein, methodologies that can beimplemented in accordance with the disclosed subject matter arediscussed. While, for purposes of simplicity, the methodologies areshown and described as a series of blocks, it is to be understood andappreciated that the claimed subject matter is not limited by the numberor order of blocks, as some blocks may occur in different orders and/orconcurrently with other blocks from what is depicted and describedherein. Moreover, not all illustrated blocks may be required toimplement respective methodologies. It is to be appreciated that thefunctionality associated with various blocks may be implemented bysoftware, hardware, a combination thereof or any other suitable means(e.g., device, system, process. component). Additionally, it should befurther appreciated that some methodologies disclosed hereinafter andthroughout this specification are capable of being stored on an articleof manufacture to facilitate transporting and transferring suchmethodologies to various devices. Those skilled in the art willappreciate and understand that a methodology can alternatively berepresented as a series of interrelated states or events such as forexample in a state diagram.

FIG. 14 illustrates an embodiment of a methodology in connection withdisplaying mash-ups. At 1402 display objects are received. The displayobjects can, for example, be identified or selected by a user as objectsof interest, the objects can be part of search results, part of atemplate of objects sent from a 3^(rd) party, etc. At 1404, therespective display objects are analyzed and bound. Attributes of thedisplay objects are determined (e.g., data rate, resolutionrequirements, types, formatting, sources, underlying code, compatibilityissues, and other factors that might influence being bound or integratedwith other display objects as part of a mash-up). At 1406, a mash-up ofa set of display objects is generated. The mash-up can be ad hoc,configured as a function of determined or inferred user preferences,needs, based on administrative settings, security settings, roles,states, etc.

For example, a user may be asked to furnish a user name and password.Authentication can also be accomplished by receiving a smart card toidentify the user, or biometric authentication can be employed.Biometric authentication utilizes physical characteristic unique toindividuals. For example, biometric authentication can include but isnot limited to identifying a user via fingerprint, palm geometry,retina, facial features (e.g., 2-D, 3-D . . . ), signature, typingpattern (e.g., speed, rhythm . . . ), and/or voice recognition, amongothers. Identity of a user can be provided, and the user can be matchedwith particular credentials based on the individual user, groupmembership, or a position (e.g., administrator, manager . . . ). Thecredentials can specify type, class and/or category of information thata user can obtain, or alternatively is prohibited from receiving.

At 1408, a determination is made regarding whether or not conflictsexist with the mash-up (e.g., circular references, data or codeincompatibility, system resource/capability mismatch, inconsistency withcorporate protocols, ethics, security, . . . ). If a conflict exists, at1410 the conflict is resolved and the mash-up is regenerated. If noconflict exists, at 1412 the generated mash-up is displayed and madeavailable for use.

FIG. 15 illustrates a methodology in connection with augmenting anexisting mash-up. At 1502, a mash-up is received or accessed. At 1504, anew set of display objects are identified, provided, selected, orretrieved. At 1506, the new set of display objects are integrated withthe existing mash-up. At 1508, a determination is made as to whether ornot a conflict is created by adding the new set of display objects. Ifyes, the conflict is resolved and the mash-up is regenerated at 1510. Ifno conflict exists, the augmented mash-up is displayed and madeavailable for use at 1512.

It is to be appreciated that the new display objects may be part ofanother mash-up, and at 1506, the new mash-up can be integrated with anexisting mash-up. Accordingly, at 1502 the new set of display objectscan be received from a 3^(rd) party (e.g., e-mail), file sharing, etc.Security measures can be implemented that prevent certain displayobjects from executing if a recipient does not have proper credentials.Likewise, limited access rights may be granted by an author of amash-up. Access rights can be granted, for example, based on anexpiration period.

Visualization System(s) and Methods) for Preserving or AugmentingResolution and Data Associated with Zooming or Paning in an IndustrialAutomation Environment

FIG. 16 illustrates a system 1600 that regulates resolution as afunction of zooming in or out of a display area, or panning across adisplay area. Conventional display systems in industrial controlenvironments strive to achieve system resource efficiencies by employingsparse images (e.g., a minimalistic approach to image size) so as tomaximize utilization of system resources (e.g., processing resources,bandwidth, data throughput, re-fresh rate, etc.) as well as facilitatesystem speed or responsiveness. Notwithstanding the aforementionedmarket forces that are driving systems to employ light-weight/sparseimages, the subject matter described herein provides for providinghigh-resolution images while judiciously utilizing system resources.

Sparse images relating to an industrial automation environment arepresented, and the images are pixel-mapped to high-resolutioncounterparts thereof. Conventionally, as a user zooms in (or magnifies)on an area of a sparse image the area becomes blurry, or loss ofresolution manifests. However, in accordance with innovations describedherein as a user zooms in on an area of an image that is pixel-mapped toa higher-resolution version thereof, data corresponding to the areaunder focus is streamed to the display area coincident with respectpixels mapped thereto and resolution of the image area can be augmented,preserved, or enhanced. The high-resolution image data is stored at aremote location and as an area on a client device is zoomed in on, datafrom the remote location is streamed to the client device as a functionof the level of zoom, and region being magnified. Accordingly, as a userzooms in on a particular region of the image, instead of the imagebecoming grainy, or blurry, the image maintains or increases resolutionas a result of image data being streamed to the user to supplement theregion of interest with more image data.

In FIG. 16, reference component 1602 determines or infers focus ofattention of the user, or level and rate of zoom into or out of adisplay area. Resolution component 1604 receives reference informationfrom the reference component 1602. General image data can for example,be stored on a local data store 1608; however, as a user is changingpoint of reference within an image or display area, the resolutioncomponent can determine amount of additional image data required tosupplement the image data currently available in order to augment,preserve, or increase resolution of the area of interest. Additionalimage data (as well as other data, e.g., advertisements, supportingdocumentation, . . . ) can be provided by host data store 1610 thatstores high resolution versions of the image data. Visualizationcomponent supplements the existing image data with additional image datato create a rich view that dynamically preserves resolution of an imageas a user zooms in on an area of interest.

FIG. 17 illustrates an embodiment of system 1600 that includes a contextcomponent 1710. The context component 1710 facilitates determining orinferring user state, goals, intent, etc. Knowledge of such user contextfacilitates the resolution component 1604 to identify subsets ofadditional data to request that will enhance user visualizationexperience. For example, if a use is viewing a pump, and it isdetermined that the pump is leaking and the user's goal is to fix thepump as the user zooms in on an area associated with the leak, theresolution component can request image data associated with areas of thepump that might be associated with the leak and down-weight image datathat would not facilitate diagnosing or understanding the problem.

FIG. 18 depicts an embodiment of system 1600 that includes a searchcomponent. A user can type in a query for an image (e.g., motor number7685) and image of the requested item will be found. In addition to asparse image representation being found, supplemental data can beidentified a priori that may be useful for streaming to the user. Forexample, if a user entered a focused query such as <motor number 7685gaskets> the initial search results can include a sparse representationof the motor as well as regions with gaskets highlighted. Image data forthe motor gaskets could already be pre-identified and optionallypre-cached so that as a user zooms in on a particular gasket area a fastresponse time is provided with respect to serving up image dataregarding the gasket.

FIG. 19 is a flow diagram describing a high-level methodology inconnection an embodiment. At 1902, determination or inference is maderegarding reference of operator view of image data in an industrialautomation environment. An initially viewed image is identified,coordinates with respect to level of zoom, area being viewed, pixelmapping to respective coordinates of view are determined. As a userchanges focus of attention (e.g., zooms in, zooms, pans . . . ), levelof zoom and pan are analyzed at 1904, and at 1906 data is streamed tothe user as a function of zoom or pan level that enhancing avisualization experience. For example, additional image data can bestreamed to augment, preserve, or increase resolution of an area ofinterest. Likewise, tertiary information can be made available (e.g., asa user zooms in on a gasket, documents related to the gasket or links toassociated information can be made available). Thus, image data is notonly pixel-mapped to corresponding image data bit it can also becontextually mapped to information or sources of information relevant tothe image data.

FIG. 20 is a flow diagram describing a high-level methodology inconnection with another embodiment. At 2002, determination or inferenceis made regarding reference of operator view of image data in anindustrial automation environment. An initially viewed image isidentified, coordinates with respect to level of zoom, area beingviewed, pixel mapping to respective coordinates of view are determined.As a user changes focus of attention (e.g., zooms in, zooms, pans . . .), level of zoom and pan are analyzed at 2004, and at 2006 adetermination or inference is made regarding user state, context,intent, goals, etc. As a function of the context analysis, additionalrelevant data is filtered or selected at 2008. At 2010, the selected andfiltered additional data is streamed to the user to augment, preserve,or increase resolution level.

FIGS. 21 and 22 illustrate an example of the aforementioned resolutionfeatures. A query is made for a motor having some control problemswithin a factory. An image of the motor 2102 is made available to theuser. The image is a sparse representation of the motor that is pixelmapped to additional image and other data stored remote from a localcomputer that is rendering the motor image. The motor is having controlproblems, and a user is interested in viewing aspects of controlequipment associated with the motor. The user is directed to an area2104 where control circuitry resides. The area can be highlighted aswell as called out as “control circuitry” to facilitate the user toquickly converge on an image area of interest. As the user startszooming in on area 2104, data corresponding to the area of interest isstreamed to the user as a function of zoom. Since the circuitry isenclosed within a housing, and it was determined or inferred that theuser desires to view the control circuits, image data corresponding tothe control circuitry within the housing is streamed to the user.

FIG. 22 illustrates a high resolution image of the control circuitry2204 of the motor within the housing. Thus, the resolution component1604 not only can request information corresponding to actual image databeing viewed but also other types of data (e.g., corresponding to anX-ray type of image that provides for viewing images of items behindwalls or solid surface). Additionally, other information 2206 (e.g.,documents, data logs, design sheets, trouble-shooting guides, URLs,etc). can be made available to the use to enhance the visualizationexperience as well as achieve goals (e.g., fixing the control problemassociated with the motor, and get it back on line).

Dynamically Generating Real-time Video Visualizations in IndustrialAutomation Environment as a Function of Context and State Information

It is to be appreciated that static image data can be utilized as wellas real-time image data. For example, in FIG. 23, an embodiment ofsystem 1600 is shown that includes a view component 2302 and a set ofcameras 2304. The view component 2302 provides for viewing an object(e.g., machine, process line, worker, conveyor, workstation, pump, motorcontrol center, drives, field device . . . and the like) from aplurality of viewing angles (e.g., via one or more of the cameras 2304).Real-time images can be served to a user, and the user can navigateabout the object from numerous angles. Resolution component 1604 canfacilitate regulating level of resolution as a user zooms in or out ofan image area.

FIG. 24 illustrates another embodiment of system 1600 that includes atransition component 2402. The transition component 2402 provides forseamlessly transition from one camera view to another. For example, whenit is determined that as a user is panning across an object and anothercamera should be switched to in order to continue viewing the object,transition component 2402 can pre-fetch image data from the other cameraand stitch it to the image data of the prior camera and vice versaduring switching of cameras as a primary image sources so that there isa seamless transition from one camera to another such that the user isunaware that a different camera is now being used. In other words, useof the transition component 2402 and cameras 2304 provides for rotatingabout the object along numerous axes and planes in a manner that resultsin a continuous and smooth view of the image such as for example when anindividual walks around an object and continues viewing the objectduring traverse thereof.

FIG. 25 illustrates a methodology in accordance with panning across anobject using real-time image data. At 2502 operator viewing reference isdetermined, or desired view is determined or inferred. At 2504, level ofzooming and panning is analyzed. As a function of the analysis, at 2506a most appropriate camera to use as a video source is selected. At 2508,a determination is made if cameras should be switched in view of changein operator state, intended or desired view, panning, zooming, etc. Ifno, the process continues to employ the same camera. If yes, at 2510 anew camera is selected to use as a video source, and image data isstitched together from both cameras to facilitate transitioning to thenew camera.

Collaborative Environment for Sharing Visualizations of IndustrialAutomation Data

FIG. 26 illustrates a system 2600 that facilitates real-time visualcollaboration in an industrial automation environment. In an industrialautomation environment, numerous devices have displays and associatedconfigurations. The respective displays are typically associated withdata sources and respective display drivers or video cards. Theautonomous and vertical design structure of such system designs createsa need to be proximate to devices and displays of interest in order tomaximize a visualization experience. System 2600 mitigates disadvantagesassociated with conventional display architectures by providing a richcollaborative environment where multiple displays can be shared andconnected so as to provide a visualization environment that promotessharing of image data as well as a workspace environment that enablesmultiple individuals located in remote locations from each other to seeand work on same items in a collaborative workspace.

Collaboration component 2602 receives instructions or requests toinitiate a collaboration with another user, machine, or display. Thecollaboration component provides for joining multiple users, machines ordisplays to create a common view or workspace via view component 2604and visualization component 2606. For example, if a device have adisplay (that is one of X displays 2608, X being an integer) and aplurality of users desire to view the display concurrently as well asinteract therewith the following occurs. Collaboration component 2602identifies the users that desire to collaborate in connection with thedisplay. The view component 2604 selects the display of interest andserves as a proxy for the display. The display data is multiplexed bythe view component so that M number of the users (M being an integer)can see the display as part of a visualization generated byvisualization component 2606. Data store 2610 can store data, code,lists, mapping info., addresses, etc. in connection with facilitatingestablishing a collaborative session.

In another example, multiple displays can be dynamically accessed andviewed as part of a shared working environment. User 1 (having display1) can share his display with user 10 (having displays 10 and 11), andvice versa. View component 2604 allows for users to seamlessly designatedisplays of interest and provide for concurrent access to such displays.The user's display can serve as a thin client that displays informationprojected on displays of interest. Multiple display views can be shownas a mash-up or through independent portal views.

FIG. 27 illustrates an embodiment of system 2600 that includes avirtualization component 2702. It can be appreciated that multiplepeople writing to a common real-time display can be problematic and leadto input conflicts and other problems. Virtualization component 2702provides for creating a virtualized workspace coincident with thecollaborative efforts. For example, if multiple users aretrouble-shooting a device from disparate locations andviewing/interfacing with a common display for the device, thevirtualization component can create a virtualized workspacecorresponding to the device that provides for chatting, virtualizedinputs and is a conflict arises via inputs they are not manifested intoa real-time input. A virtualized workspace can implement a lag prior tomanifesting entries into real-world events and thus facilitatemitigating conflicts. Moreover, the virtualized workspace can provideenhanced functionality for collaborating (e.g., chat space, notestaking, logging info., teleconferencing, video-conferencing,web-conferencing, etc.).

The virtualization component 2702 can also create avatars of individualsas well as devices to facilitate collaborating in a virtual environment.For example, if user 1 desired to engage user 15 or user 20 inconnection with a trouble-shooting problem, he could view a virtualrepresentation of current status of user 15 and user 20. If user 15'savatar was in a meeting, but user 20's avatar appeared available, user 1could send a message to user 20's avatar and engage user 20 inconnection with a collaborative trouble-shooting effort.

FIG. 28 illustrates an embodiment of system 2600 where X number ofmultiple users (X being an integer) can collaborate with one another viarespective displays 2608, and visually share information regarding aplurality of zones 2804 as well as extrinsic data 2806. Respective userscan hand over control to other users, show other users what is beingdisplayed on their displays, work together in a virtual workspace andmake respective zone information available to one another. System 2600creates a rich mesh-network that allows for information to be seamlesslyshared. However, it is to be appreciated that security policies andprotocols can be implemented that prevent unauthorized individuals fromaccessing certain information. Information can be filtered, blocked,parsed, etc. as a function of user roles, needs, permissions, orauthentication, for example.

FIG. 29 illustrates a high-level methodology in connection withcollaboration of users and equipment. At 2902, users or machinesdesiring, requested, or needed to collaborate are identified. Theidentification can be a function of user opt in, requests, events, etc.Moreover, information of interest to one or more user can be identifiedwithout prompting or requesting such interest information from theuser(s). The inference can be based on identity, role, location, and/oron text in a production facility by matching the user's location,context, and/or role with the location and/or status ofdevice/equipment/system being monitored. User identification can beperformed utilizing a plurality of identification techniques and thedisclosed aspects are not limited to any one known technique. Based onthe user identification, user information is retrieved, and can includecontextual information and/or historical information. Real-time dataregarding relevant devices and/or equipment can also be obtained.

At 2904, a common view for the collaborating entities is established. Adetermination can be made regarding whether a user interest matches thedevice and/or equipment information obtained. For example, based on auser's context and/or historical information a determination orinference can be made that the user would be interested in informationregarding device/equipment in a particular area of an industrialsetting. If the determination or inference is that the user would mostlikely be interested in the information the information is presented tothe user(s) via the common view. It should be understood that more thanone user can receive substantially the identical information ordifferent information at substantially the same time. It is to beunderstood that this act can be recursive such that any number ofdevices/equipment can be polled for information. Moreover, it is to beappreciated that automated and/or dynamic polling of device/equipmentcan be employed in connection with alternate aspects. For example, asystem can be configured to automatically poll and/or reportdevice/equipment information dynamically in accordance with inferring auser interest in such information.

At 2906, desired or appropriate industrial automation visualizations aredetermined or inferred, and at 2908, a collaborative visualization, orwork environment is generated for viewing data or working with data ofinterest.

Turning to FIG. 30, an exemplary display 3000 is depicted thatvisualization component 106 of FIG. 1 can render. It should beappreciated that display 3000 is provided solely to facilitate clarityand understanding with respect to various aspects of the subjectdisclosure and is therefore not meant to limit the subject invention inany manner. Display 3000 includes a base presentation 3010 comprisingtwo tanks connected to a first valve and a first pump as well as amixer, motor, a second value and a second pump. Base presentation 3010also includes two gages associated with the motor identifying motortemperature and speed. As shown, the base presentation 3010 does notoccupy they entire display rather it is centered in the middle providinga border of free space. In addition to base presentation 3010, variousitems 3020-3025 are also displayed that provide related or situationspecific information. Items 3020 and 3021 are graphs of historicalinformation and item 3022 provides information regarding vibrationanalysis with respect a motor. Item 3023 indicates attention is requiredwith respect to the associated pump and item 3024 provides an indicationthat help information is available upon selection of the item, forinstance. Item 3025 is shrunken representation of details regarding thebase presentation 3010. Items 3020, 3021, 3022, and 3025 aresuperimposed on the display and are positioned along the periphery ofthe base presentation in accordance with an aspect of the invention.This positioning is beneficial at least because it does not obscureinformation provided by the base presentation 3010. By contrast, items3023 and 3024 are superimposed entirely over base presentation 3010, butare small enough not to cover any objects provided thereby.

A user can interact with any of the display objects which may cause thedisplay to change. For instance, if a user selects or otherwiseidentifies item 3025 the display 3100 of FIG. 31 could result. Asillustrated by FIG. 31, the interface system updates the basepresentation 3110 to show the selected information and automaticallysuperimposes new, situation-specific information that is related to theupdated display 3100. In particular, items 3110, 3120 and 3130 aredisplayed. Item 3110 provides information regarding a shift productionreport and item 3120 identifies that help is available for display uponselection, for example. Item 3130 is a shrunken version of the previousbase presentation 3010 of FIG. 30. The user can return to the previousbase presentation 3010 by selecting superimposed item 3130.

Referring now to FIG. 32, an example system 3200 is illustrated fordynamically presenting information of interest to one or more users inan industrial automation environment. The system 3200 includes aninformation retrieval component 3202 that is configured to obtaininformation regarding user(s) of the system 3200, historical andreal-time information relating to the user(s), device(s) and/orequipment(s). The information retrieval component 3202 can be furtherconfigured to make a determination or inference whether informationshould be presented to the user(s).

One or more users, illustrated at 3204 as User 1 through User Q, where Qis an integer equal to or greater than one, can physically and/orvirtually (e.g., remotely) interact with and/or navigate through system3200. As the user(s) 3204 contacts the system 3200, the informationretrieval component 3202 obtains, receives, requests, and so forthinformation regarding each user 3204. A means for identifying each user3204 can be employed, such as a unique user name and/or password, forexample. In other aspects, system 3200 can use alternativeidentifications means, such as biometric authentication that utilizesphysical characteristic unique to individuals. It is to be appreciatedthat a plurality of identification schemes can be utilized with system3200 and all such alterations and modifications are intended to fallwithin the scope of the detailed description and appended claims.

Utilizing the user identification, information retrieval component 3202can determine and/or track the context of each user 3204. Thisinformation can be retrieved from one or more database or otherstorage/retrieval means that can include a user/role context datacomponent 3210 and/or a user/role historical data component 3212. Thecontext of each user can be, for example, the role, position,responsibilities, authorized programs, areas or regions of interest,activities, etc. as it relates to the particular user.

The information retrieval component 3202 can further be configured toaccess historical data 3206 from a device equipment context component3214 and/or a device/equipment historical component 3216 that includedata relating to device(s) and/or equipment. For example, informationregarding the devices and/or equipment that are included in theautomation control system can include a plurality of information that ismaintained and/or stored. Examples of maintained information includelogical and/or physical locations, operating status, other types ofinformation that are of interest to different users and/or user roles.For example, an operator of the automation control system may have adirect area of interest than a tester and/or maintenance user because ofthe disparate role of each user and how/why each user interacts withsystem 3200. The information retrieval component 3202 is furtherconfigured to update the historical data 3206.

The information retrieval component 3202 can also be configured tointeract with real-time data 3218 regarding the device(s) and/orequipment associated with system 3200. One or more device, labeledDevice 1 through Device T, and/or one or more equipment, labeledEquipment 1 through Equipment L, where L is an integer can be monitoredfor status information. For example, real time data can include theoperating status of the device/equipment (e.g., off, on, run, . . . ),the current stage or process of each device/equipment (e.g., operating,line of code being implemented, . . . ).

The information retrieval component 3202 can make a determinationwhether a user 3204 would be interested in information relating to aparticular device/equipment and is able to create mappings and/orlinkages between the two sets of information (historical 3206 and realtime 3218) and identify or infer information that may be relevant tousers' current locations and activities. For example, if there is analarm on a device and/or piece of equipment, based on the user context,the user may be presented information relating to such alarm condition.If the user context and/or historical information indicate that the user3202 is not interested in the particular device and/or equipment, theinformation retrieval component 3204 will not present such informationto the user. This determination can be made based on the user role,context, historical, and other information obtained as well as thedevice/equipment context, historical, current, and other information. Ifa determination is made that one or more user 3204 would be interestedin such information, the information is presented to the one or moreuser interested in the data, as shown at 3210.

By way of example and not limitation, if an operator is working in thebottling area of a brewery, system 3200 can automatically present thatoperator with information about the current operational status of thedevices and/or equipment located in the area in which the operator islocated. Similarly, if a maintenance engineer is currently working inthe same area, the system 3200 can present that user with informationabout the maintenance status of the devices and/or equipment located inthat area at substantially the same time. In addition or alternatively,an electrician working in the same area might be presented withinformation about different devices and equipment, specifically, thoserelated to the electrical systems in that area of the facility, atsubstantially the same time as the operator and maintenance engineer arepresented information.

FIGS. 33 and 34 illustrate visualizations in accordance with aspectsdescribed herein. A plurality of visualization 3302 views are presentedat a bottom of a visualization screen. As a user selects, or hovers overa particular view a display object 3304 corresponding to that view isdisplayed in greater detail and optionally with real-time data. Forexample, in the figures a mixing and flocculation visualizationapplication is displayed. A user selected a particular thumbnail viewcorresponding to filter room activity, and display object 3304 isprovided to present details regarding filter room activity as it appliesto the mixing and flocculation application. In FIG. 34, a differentthumbnail view is selected and a display object 3404 corresponding toLoop 1 of the mixing and flocculation application is presented.

It is to be appreciated that the subject visualization scheme enables auser to quickly select different visualizations (via the thumbnail views3302) and corresponding functionality associated with an application.Thus, multi-dimensional visualizations can be viewed so as to provide auser with a vast amount of information in relatively short time (e.g.,several seconds or minutes).

FIGS. 35-41 illustrate example interfaces in accordance with variousaspects described herein. In FIG. 35, a semi-transparent dash board 3502is shown can be overlaid on other display objects to provide informationto a user in a glanceable manner. For example, the dash board 3502 isshown as a series of gauges that can correspond to a set of keyperformance indicators (KPIs). Use of colors as well as numbers and adial enable a user to quickly glean information regarding status orperformance of items, processes, devices, production, etc. FIG. 36illustrates an example interface that provides KPI information—a subsetof this information can be presented via the dash board 3502. FIG. 37illustrates interface 3602 with a dash-board overlay 3702. The dashboard 3702 provides for not only viewing KPI information but alsoquickly accessing additional information (e.g., drilling down into asubset of data). FIG. 38 illustrates an interface 3802 that is generatedas a result of drilling down from the dash board 3702. Interface 3802provides a view of process trend data. FIG. 39 illustrates analternative view of a crew schedule 3902 that can be retrieved as aresult of drilling down via dashboard 3702. Likewise, FIG. 40illustrates a quality and compliance overlay that can be presented.Production events, alarm events, quality events, process trends,specification limits, or other information can be presented in a view4102 as shown in FIG. 41.

As can be appreciated the overlays can utilize multiple data sources,contextual and content switches, and integrate data associated therewithin a rich overlay view that enables a user to quickly consume a vastamount of information. Cognitive load of users can be factored inconnection with most appropriate overlay to present. Moreover, userrights, roles, state, goals, intentions can be employed as factors inconnection with generating overlay views to assist a user with accessingand understanding complex data in a manner that facilitates achievingend goals given factors considered. Thus, a utility-based analysis canbe employed where the cost associated with generating an presenting anoverlay or subset thereof is weighed against the associated benefit. Inaddition, historical data, user preferences, MLR systems can be employedto facilitate automatically presenting overlays that are deemed orinferred to be most appropriate given a set of evidence.

Visualization of Workflow in an Industrial Automation Environment

FIG. 42 illustrates a system 4200 that facilitates generating a richvisualization of an industrial automation environment coupled withreal-time or static workflow information. As noted supra, generatingvisualizations in an industrial automation environment is very differentfrom doing so in a general purpose computing environment. For example,down-time and latency tolerance levels between such environments arevastly different. Individuals tolerate at a fair frequency lock-ups,delayed images, etc. in a general purpose computing environment;however, even several seconds of down-time in an industrial automationenvironment can lead to substantial loss in revenue as well as createhazardous conditions within a factory. Consequently, market forces havedictated that HMI systems within an industrial automation environmentremain light-weight, fast, not computationally expensive, and thusrobust. Counter to conventional wisdom in the industrial automationdomain, innovations described herein provide for highly complex andsophisticated HMI systems that mitigate down-time, are robust, andfacilitate maximizing an operator experience within an industrialautomation environment.

It is contemplated that visualization system 4200 can form at least partof a human machine interface (HMI), but is not limited thereto. Forexample, the visualization system 4200 can be employed to facilitateviewing and interaction with data related to automation control systems,devices, and/or associated equipment (collectively referred to herein asan automation device(s)) forming part of a production environment.Moreover, associated workflow information can be presented concurrentlyto provide a user with a deep understanding of how production state andbusiness state inter-depend. Visualization system 4200 includesinterface component 4202, context component 4204, visualizationcomponent 4206, workflow component 4208, and data store 4210.

The interface component 4202 receives input concerning displayed objectsand information. Interaction component 4202 can receive input from auser, where user input can correspond to object identification,selection and/or interaction therewith. Various identificationmechanisms can be employed. For example, user input can be based onpositioning and/or clicking of a mouse, stylus, or trackball, and/ordepression of keys on a keyboard or keypad with respect to displayedinformation. Furthermore, the display device may be by a touch screendevice such that identification can be made based on touching agraphical object. Other input devices are also contemplated includingbut not limited to gesture detection mechanisms (e.g., pointing, gazing. . . ) and voice recognition.

In addition to object or information selection, input can correspond toentry or modification of data. Such input can affect the display and/orautomation devices. For instance, a user could alter the display format,color or the like. Additionally or alternatively, a user could modifyautomation device parameters. By way of example and not limitation, aconveyor motor speed could be increased, decreased or halted. It shouldbe noted that input need not come solely from a user, it can also beprovided by automation devices. For example, warnings, alarms, andmaintenance schedule information, among other things, can be providedwith respect to displayed devices.

Other applications and devices (e.g., enterprise resource planning (ERP)systems, financial applications, inventory application, diagnostic orprognostic applications . . . ) can also provide information to theinterface component 4202.

Context component 4204 can detect, infer or determine contextinformation regarding an entity or application. Such information caninclude but is not limited to an entity's identity, role, location(logical or physical), current activity, similar or previousinteractions with automation devices, context data pertaining toautomation devices including control systems, devices and associatedequipment. Device context data can include but is not limited tological/physical locations and operating status (e.g., on/off,healthy/faulty . . . ). The context component 4204 can provide thedetermined, inferred, detected or otherwise acquired context data tovisualization component 4206, which can employ such data in connectionwith deciding on which base presentations and or items to display aswell as respective format and position.

By way of example, as an entity employs visualization system 4200(physically or virtually), the system 4200 can determine and track theiridentity, their roles and responsibilities, their areas or regions ofinterest/responsibility and their activities. Similarly, the system canmaintain information about devices/equipment that make up the automationcontrol system, information such as logical/physical locations,operating status and the types of information that are of interest todifferent persons/roles. The system is then able to createmappings/linkages between these two sets of information and thusidentify information germane to a user's current location andactivities, among other things.

The interface component 4202 is also communicatively coupled tovisualization component 4206, which can generate, receive, retrieve orotherwise obtain a graphical representation of a production environmentincluding one or more objects representing, inter alia, devices,information pertaining to devices (e.g., gages, thermometers . . . ) andthe presentation itself. In accordance with one aspect, a basepresentation provided by visualization component 4206 can form all orpart of a complete rendered display. In addition to the basepresentation, one or more items can form part of the visualization.

An item is a graphical element or object that is superimposed on atleast part of the base presentation or outside the boundaries of thebase presentation. The item can provide information of interest and cancorrespond to an icon, a thumbnail, a dialog box, a tool tip, and awidget, among other things. The items can be transparent, translucent,or opaque be of various sizes, color, brightness, and so forth as wellas be animated for example fading in and out. Icons items can beutilized to communicate the type of information being presented.Thumbnails can be employed to present an overview of information oressential content. Thumbnails as well as other items can be a miniaturebut legible representation of information being presented and can bestatic or dynamically updating. Effects such as fade in and out can beused to add or remove superimposed information without overlydistracting a user's attention. In addition, items can gradually becomelarger/smaller, brighter/dimmer, more/less opaque or change color orposition to attract more or less of a user's attention, therebyindicating increasing or decreasing importance of the informationprovided thereby. The positions of the items can also be used to conveyone or more of locations of equipment relative to a user's currentlocation or view, the position or index of a current task within asequence of tasks, the ability to navigate forward or back to apreviously visited presentation or view and the like. The user can alsoexecute some measure of control over the use/meaning of these variouspresentation techniques, for example via interface component 4202.

If desired, a user can choose, via a variety of selection methods ormechanisms (e.g., clicking, hovering, pointing . . . ), to direct theirattention to one or more items. In this case the selected information,or item providing such information, can become prominent within thepresentation, allowing the user to view and interact with it in fulldetail. In some cases, the information may change from static toactive/dynamically updating upon selection. When the focus of thepresentation changes in such a manner, different information may becomemore/less interesting or may no longer be of interest at all. Thus, boththe base presentation and the set of one or more items providinginteresting information can be updated when a user selects a new view.

Data store 4210 can be any suitable data storage device (e.g., randomaccess memory, read only memory, hard disk, flash memory, opticalmemory), relational database, media, system, or combination thereof. Thedata store 4210 can store information, programs, AI systems and the likein connection with the visualization system 4200 carrying outfunctionalities described herein. For example, expert systems, expertrules, trained classifiers, entity profiles, neural networks, look-uptables, etc. can be stored in data store 4210.

Workflow component 4208 binds workflow information to industrialautomation as presented infra. Visualization component 4206 thuspresents views of an industrial automation environment as well asworkflow information counterparts.

FIG. 43 illustrates one particular embodiment of visualization system4200. Context component 4204 includes an AI component 4302 and a stateidentification component (state identifier) 4304. The AI component 4302can employ principles of artificial intelligence to facilitateautomatically performing various aspects (e.g., transitioningcommunications session, analyzing resources, extrinsic information, userstate, and preferences, risk assessment, entity preferences, optimizeddecision making, . . . ) as described herein. AI component 4302 canoptionally include an inference component that can further enhanceautomated aspects of the AI component utilizing in part inference basedschemes to facilitate inferring intended actions to be performed at agiven time and state. The AI-based aspects of the invention can beeffected via any suitable machine-learning based technique and/orstatistical-based techniques and/or probabilistic-based techniques. Forexample, the use of expert systems, fuzzy logic, support vector machines(SVMs), Hidden Markov Models (HMMs), greedy search algorithms,rule-based systems, Bayesian models (e.g., Bayesian networks), neuralnetworks, other non-linear training techniques, data fusion,utility-based analytical systems, systems employing Bayesian models,etc. are contemplated and are intended to fall within the scope of thehereto appended claims.

State identifier 4304 can identify or determine available resources(e.g., service providers, hardware, software, devices, systems,networks, etc.). State information (e.g., work performed, tasks, goals,priorities, context, communications, requirements of communications,location, current used resources, available resources, preferences,anticipated upcoming change in entity state, resources, change inenvironment, etc.) is determined or inferred. Given the determined orinferred state and identified available resources, a determination ismade regarding whether or not to transition a visualization session fromthe current set of resources to another set of resources. Thisdetermination can include a utility-based analysis that factors cost ofmaking a transition (e.g., loss of fidelity, loss of information, userannoyance, interrupting a session, disrupting work-flow, increasingdown-time, creating a hazard, contributing to confusion, entity has notfully processed current set of information and requires more time, etc.)against the potential benefit (e.g., better quality of service, usersatisfaction, saving money, making available enhanced functionalitiesassociated with a new set of resources, optimization of work-flow, . . .). This determination can also include a cost-benefit analysis. The costcan be measured by such factors as the power consumption, computationalor bandwidth costs, lost revenues or product, under-utilized resources,operator frustration . . . . The benefit can be measured by such factorsas the quality of the service, the data rate, the latency, etc. Thedecision can be made based on a probabilistic-based analysis where thetransition is initiated if a confidence level is high, and not initiatedif the confidence level if low. As discussed above, AI-based techniques(including machine-learning systems) can be employed in connection withsuch determination or inference. Alternatively, a more simple rule-basedprocess can be employed where if certain conditions are satisfied thetransition will occur, and if not the transition will not be initiated.The transition making determination can be automated, semi-automated, ormanual.

FIG. 44 is a high-level diagram illustrating one particular system 4400in connection with an embodiment. It is to be appreciated that system4400 can provide interface component 4202 enterprise resource planning(ERP) information in connection with generating an ERP or workflowvisualization in accordance with an industrial automation system. Thesystem 4400 includes a plurality of machines 4410 (MACHINE₁ throughMACHINE_(R) (R being an integer) at least a subset of which areoperatively coupled in a manner so as to share data between each otheras well as with a host computer 4420 and a plurality of businesscomponents 4430. The machines 4410 include a respectivediagnostic/prognostic component 4432 that provides for collecting and/orgenerating data relating to historical, current and predicted operatingstate(s) of the machines. It is to be appreciated that the plurality ofmachines can share information and cooperate; and is it to beappreciated that the machines do not have to be the same. Furthermore,some of the machines 4410 may comprise sub-systems or lower-levelcomponents that can have separate sensors, lifetime estimates, etc. Forexample a compressor may consist of a motor, pump, pressure chamber, andvalves. The motor component may include smart bearings with embeddedsensors to predict bearing lifetime.

The predicted operating state(s) of the machine may be determined basedon expected demand or workload or a probabalistic estimate of futureworkload or demand. Similarly, expected environment (e.g. temperature,pressure, vibration, . . . ) information and possible expected damageinformation may be considered in establishing the predicted future stateof the system. Undesirable future states of the system may be avoided ordeferred through a suitable change in the control while achievingrequired operating objectives and optimizing established operational andbusiness objectives. Moreover, it is to be appreciated that datarelating to subsets of the machines can be aggregated so as to providefor data relating to clusters of machines—the cluster data can providefor additional insight into overall system performance and optimization.The clusters may represent sub-systems or logical groupings of machinesor functions. This grouping may be optimized as a collection of processentities. Clusters may be dynamically changed based on changingoperating requirements, machinery conditions, or business objectives.The host computer 4420 includes an enterprise resource planning (ERP)component 4434 that facilitates analyzing the machine data as well asdata relating to the business concern components 4430 (utilitiescomponent 136, inventor component 138, processes component 140,accounting component 142, manufacturing component 144 . . . ). The datais analyzed and the host computer 120 executes various optimizationprograms to identify configurations of the various components so as toconverge more closely to a desired business objective. For example,assume a current business objective is to operate in a just in time(JIT) manner and reduce costs as well as satisfy customer demand. If theinventory component 138 indicates that finished goods inventory levelsare above a desired level, the ERP component 134 might determine basedon data from the utility component 136 and machine components 110 thatit is more optimal given the current business objective to run themachines at 60% rather than 90% which would result in machineryprognostics indicating we may extend the next scheduled maintenance downtime for another 4 months reducing the maintenance labor and repairparts costs. This will also result in reducing excess inventory over aprescribed period of time as well as result in an overall savingsassociated with less power consumption as well as increasing lifeexpectancy of the machines as a result of operating the machines as areduced working rate.

It is to be appreciated that optimization criteria for machineryoperation can be incorporated into up-front equipment selection andconfiguration activities—this can provide additional degrees of freedomfor operational control and enhanced opportunities for real-timeoptimization.

Maintenance, repair, and overhaul (MRO) activities are generallyperformed separate from control activities. Interaction andcollaboration between these functions are typically limited to the areasof operations scheduling and to a lesser extent in equipmentprocurement—both are concerned with maximizing production throughput ofthe process machinery. Information from MRO systems and from machinerycontrol and production systems are related and can provide usefulinformation to enhance the production throughput of process equipment.The subject invention leverages off opportunities realized by closelycoupling machinery health (e.g. diagnostics) and anticipated health(e.g. prognostics) information with real-time automatic control. Inparticular, the closed-loop performance of a system under feedbackcontrol provides an indication of the responsiveness, and indirectly,the health of the process equipment and process operation. Moreimportantly, it is possible to change how the system is controlled,within certain limits, to alter the rate of machinery degradation orstress. Using real-time diagnostic and prognostic information thesubject invention can be employed in connection with altering futurestate(s) of the machinery. Given a current operating state for both themachinery and the process the subject invention can drive the machine(s)110 to achieve a prescribed operating state at a certain time in thefuture. This future operating state can be specified to be an improvedstate than would occur if one did not alter the control based onmachinery health information. Furthermore, the future state achievedcould be optimal in some manner such as machinery operating cost,machinery lifetime, or mean time before failure for example. Theprescribed operating state of a particular machine may be sub-optimalhowever, as part of the overall system 100, the system-wide operatingstate may be optimal with regard to energy cost, revenue generation, orasset utilization.

For example, with reference to Table I below:

TABLE I Power Source/Control Technique Direct Line Power - Drive Power -Flow Control with Flow Control via Throttle Valve Motor Speed FullFlow - Power Flow: 1.07 kW 1.13 kW 75 gpm (flow not restricted) ReducedFlow - Power Flow: .881 kW .413 kW 45 gpm (restricted flow)

The above data exhibits energy utilization from a motor-pump systemunder conditions of full flow and reduced flow. The flow rate conditionsshown are achieved using a variable speed drive to control motor speedand therefore flow rate (column 1) and with a motor running directlyfrom the power line with a throttling valve used to control flow rate(column 2). The estimated energy savings with Drive Power at reducedflow is 0.468 kW-a 53% energy savings in connection with Drive Power.Pumping applications which require operation at various prescribed headPressures, liquid levels, flow rates, or torque/speed values may beeffectively controlled with a variable speed motor drive. The benefitsof using a variable speed motor controller for pump applications arewell established, particularly for pumps that do not operate at fullrated flow all the time. In fact, the variable speed drive used fortesting in connection with the data of Table I has a user-selectablefactory setting optimized for fan and pump applications although theseoptimized settings were not employed for the energy savings reportedherein. The scope of benefits beyond energy savings include improvedmachinery reliability, reduced component wear, and the potentialelimination of various pipe-mounted components such as diverters andvalves and inherent machinery protection such from over-current orunder-current operation. Pumps which typically operate at or near fullsynchronous speed and at constant speed will not realize the energysavings as we have demonstrated in Table I. Process conditions thatrequire pump operation at different flow rates or pressures (or arepermitted to vary operation within process constraints) are candidatesto realize substantial energy savings as we have shown. If maximumthroughput is only needed infrequently, it may be beneficial to specifythe hydraulic system and associated control to optimize performance overthe complete span of operating modes based on the time spent in eachmode. It will be necessary in this case to specify the duration of timethe hydraulic system is operating at various rating levels coupled withthe throughput and operating cost at each level.

Although machine control is discussed herein primarily with respect tomotor speed, the invention is not to be construed to have controllimited to such. Rather, there are other control changes that can bemade such as for example changing controller gains, changing carrierfrequency in the case of a VFD motor controller, setting current limitson acceleration, etc. The control can be broad in scope and encompassmany simultaneous parameter changes beyond just speed. Moreover, the useof models can be a significant component of control and configurationoptimization. A space of possible operating conditions for selectionthat optimizes a given process or business performance may be determinedby employing a simulation model for example. Modeling techniques canalso serve as a basis for prognostics—thus, a simulation model canencompass process machinery, throughput, energy costs, and business andother economic conditions.

With respect to asset management, it is to be appreciated that thesystem 4400 may determine for example that purchasing several smallermachines as compared to a single large machine may be more optimal givena particular set of business objectives.

It is also to be appreciated that the various machines 4410 or businesscomponents 4430 or a subset thereof can be located remotely from oneanother. The various machines 4410 and/or components 4430 cancommunicate via wireless or wired networks (e.g., Internet). Moreover,the subject invention can be abstracted to include a plant or series ofplants with wireless or wired networked equipment that are linked vialong distance communications lines or satellites to remote diagnosticcenters and to remote e-commerce, distribution, and shipping locationsfor dynamic logistics integrated with plant floor prognostics andcontrol. Thus, optimization and/or asset management in connection withthe subject invention can be conducted at an enterprise level whereinvarious business entities as a whole can be sub-components of a largerentity. The subject invention affords for implementation across numerouslevels of hierarchies (e.g., individual machine, cluster of machines,process, overall business unit, overall division, parent company,consortiums . . . ).

FIGS. 45-53 illustrate example visualizations in connection with aspectsdescribed herein. FIG. 45 illustrates a real-time video visualization ofa conveyor line 4500. FIG. 46 illustrates an animated simulation 4600 ofthe conveyor line 4500. FIG. 47 illustrates a representation of conveyorline 4500. FIG. 48 illustrates a usage profile graph 4800 correspondingto utilization/workflow associated with the conveyor line 4500. FIG. 49illustrates an example cost function response surface graphcorresponding to utilization/workflow of the conveyor lines 4500. FIG.50 illustrates a visualization 5000 that conveys conveyor operatinginformation (e.g., rate, performance, . . . ) as well as workflowinformation. For example, conveyor line A 5001 is performing at a steadyrate evidenced by the number of packages moving on the line. Moreover,workflow and profitability information is conveyed by the visualizationas well. Icon 5002 indicates worker performance and workflow is at asteady level. Dollar signs (as well as number thereof) 5004 indicatethat Line A is generating a desired level of revenue. Order objects 5006convey that there are orders to be filled, and inventor icon 5008indicates that there is sufficient inventory and not an overstocking

On the other hand, it can be discerned from the visualization thatConveyor line B 5020 is performing at a lower rate than conveyor line A5001 by the reduced number of packages passing along the conveyor. Inaddition, there are a number of inventory icons associated with thisline indicating an overstocking; and there are no order icons associatedwith this line. There is only one dollar icon associated with this line,and so it can be readily appreciated that the line is making some profitbut is by no means as profitable as line A 5001. Likewise, workerproductivity icon 5022 indicates that the workers are not as efficientas indicated by icon 5002 for line A.

Line c 5030 shows low productivity since no packages are moving on theline, and empty bucket icons 5032 indicate no inventor. Icon 5034 alsoindicates no or cancelled orders, and there are no dollar iconsassociated with this line. Thus, it is clear that the line is not beingutilized effectively, and is not generating revenue.

The visualization 5000 provides for quickly understanding in aglanceable manner status, workflow, productivity, performance, revenuegeneration, inventory, back-orders, etc. It is to be appreciated thatthe foregoing is but one of many visualization schemes that can bepresented to convey workflow information coincident with industrialautomation system performance information. For example, in FIG. 51, the3 conveyor lines can be represented by a regional sales chart 5110, orvia views 5120, 5130, 5140 and the like. It is to be appreciated thatsuch visualization information can be emailed to users as well asintegrated with calendars or tasks 5210 as shown in FIG. 52.

Distance-wise Presentation of Industrial Automation Data as a Functionof Relevance to User

FIG. 53 illustrates an embodiment of system 100 (FIG. 1) that includes areference component 5302. For sake of brevity, discussion alreadypresented for components already mentioned will be omitted. Referencecomponent 5302 in connection with context component 104 providesdetermining information most relevant for a user given a set of evidence(e.g., user state, user context, device state, device context, systemstate, system context, user goals, user intent, priorities, level ofurgency, revenue, deadlines, . . . ). To facilitate optimizing displayof information, the system employs distance-wise placement of objectswithin a display space.

In particular a graphical user interface is provided via displaycomponent 108 and visualization component 106 that provides fororganizing and accessing information or content (also referred to as an“object”) in a distance-wise framework that optimizes presentation ofdisplay objects as a function of user intent, state, context, or goals.A user can view or organize objects, edit or otherwise work on aselected object by, for example, representing, graphically, objects orcontent which can be added, moved, or deleted from a simulatedthree-dimensional environment on the user's display. Thus, displayobjects of higher relevance will appear closer to the user than objectsof lower relevance. In addition to employing distance, resolution ofobjects can also be exploited such that objects of greater relevancewill be displayed at a higher resolution than objects of lowerrelevance.

Spatial memory is utilized, for example, by simulating a plane locatedand oriented in three-dimensional space, or other three-dimensionallandscape on which display are manipulated. The plane or landscape caninclude visual landmarks for enhancing a user's spatial memory. As theobject thumbnails are moved about the landscape, the present inventionmay employ perspective views (perceived image scaling with distance),partial image occlusion, shadows, and/or spatialized audio to reinforcethe simulated three-dimensional plane or landscape. Other audio cues maybe used to indicate proximal relationships between object thumbnails,such as when an object thumbnail being “moved” is close to apre-existing cluster of object thumbnails. An ancillary advantage ofusing a simulated three-dimensional landscape is that more objects canbe represented, at one time, on a single display screen.

FIG. 54 illustrates an example of how system 100 presents information ina distance-wise (or size-wise) manner to facilitate working on tasks. Amotor is malfunction, and so a number of display objects are presented.The motor display object 50 is presented up front and closer to the userbecause system 100 deemed this display most relevant of all displayobjects given current set of evidence. As can be seen the other displayobjects are smaller in appearance or appear further away from the user.Respective objects are situated in the display space as a function ofdetermined or inferred relevance given a set of evidence within anindustrial automation setting.

The set of evidence changes as the user is analyzing the motor displayobject 50 data, and as shown in FIG. 55 the control board 5502 isweighted heavier in terms of relevance and thus is now displayed closerto the user and the motor display object 50 is positioned further awayfrom the user in display space. Turning to FIG. 56, the evidence changesfurther and the user is concerned that production will slow down.Accordingly, a workflow display object 5602 showing a visualization of aconveyor line impacted by the downed motor is presented. Moreover,real-time video display object 5604, showing the conveyor line inreal-time, is increased in size and brought closer to the user indisplay space as well. FIG. 57 shows the real-time video display object5604 presented close to the user and all other display objects 5704presented smaller and in the distance. FIG. 58 illustrates yet anotherexample visualization as a result of further change in evidence that nowweights documentation regarding trouble-shooting the problem heavierthan other items. Thus, display object 5804 which representstrouble-shooting documentation is presented.

FIG. 59 illustrates a high-level methodology 5900 in accordance withaspects described herein. At 5902, evidence (e.g., user state, usercontext, device state, device context, system state, system context,user goals, user intent, priorities, level of urgency, revenue,deadlines, . . . ) is obtained. At 5904, display objects that arerelevant given the set of evidence are identified. At 5906, a subset ofthe identified display objects are presented as a function of relevancegiven the evidence. For example, the greater the relevance of thedisplay object given the evidence, relative to other display objects,the closer the display object is presented to the user in 2-D or 3-Ddisplay space. Moreover, resolution can be varied as a function ofrelevance. At 5908, it is determined if the set of evidence has changed.If yes, the process proceeds to 5906 where presentation of the displayobjects may be changed as a function of relevance given change inevidence. If the evidence has not changed, the process returns to 5902.

Surface-Based Computing in an Industrial Automation Environment

FIG. 60 illustrates a surface based computing system 6000 for anindustrial automation environment. The system 6000 can compute images ofobjects touching a surface of a plane or display space. Morespecifically, the system can facilitate determining which objects inview of a plane exist at a given depth from the plane or display space.For example, this can be accomplished in part by employing aconfiguration comprising at least two cameras and a vertical orhorizontally located sensing plane or display surface located in frontof the cameras. The cameras can be directed toward the plane or displayscreen/surface.

In one aspect, a user can provide input with respect to the plane bytouching or otherwise contacting the plane or placing an object on theplane. Input given within a close proximity of the plane can also be“entered” for image processing as well. The cameras can be triggered tocapture images or snapshots of the input (input images) to ultimatelydetermine and generate a touch image updated in real-time. The touchimage can include objects in contact with the plane and can exclude anybackground scenery. In particular, each camera can acquire an inputimage of the plane whereby object in that plane may be included in theimage.

To obtain a touch image from input images, image processing techniquescan be utilized to combine input images. In particular, camera canprovide an input image comprising one or more objects in a scene. Inaddition, input images can be rectified such that the four corners ofthe plane region coincide with the four corners of the image. Imagedifferencing procedures can be employed to highlight contours or edgesof objects. For example, edge detection can be applied to rectifiedimages to yield corresponding edge images. Thereafter, two edge imagescan be multiplied pixel-wise, for instance. The resulting image canreveal where edge contours of the two input images overlap. Suchoverlapping contours can indicate or identify objects that are incontact with the plane.

Accordingly, a user can place an object (e.g., device, equipment part,nut, bolt, washer, tool, component, . . . ) on an image surface andcomputing surface component 6030 can identify the object. Once theobject is identified, information (e.g., type, age, history, warranty,documentation, order info., maintenance info., etc.) can be retrievedand made available to the user.

System 6000 includes at least two imaging components 110, 120 (e.g.,IMAGING COMPONENT₁ and IMAGING COMPONENT_(M), where M is an integergreater than 1) positioned behind a non-diffuse sensing plane 6030 (orscreen surface that includes a computing surface component). The imagingcomponents (6010, 6020) can be mounted or otherwise positioned such thateach can see all four corners of the computing surface plane or screen6030.

The user can provide input with respect to the system 6000 by placingone or more objects in contact with or within a proximal distance to theplane 6030. Each imaging component can then capture an input image(e.g., first 6050 and second 6060 input images, respectively).Following, a detection component 6070 can process the images to detectand/or determine the shape and/or contour of the objects in each of theinput images to ultimately compute a touch image (output image). Inparticular, the detection component 6070 can comprise a pixel-wisecomparison component 6080 that compares pixels between at least twoimages to determine which pixels are located in the same positions ineach image. Matching or overlapping pixels can remain whilenon-overlapping pixels can be essentially removed. A “final” touch imagecan be generated having only the matching or overlapping pixels includedtherein.

In addition, the detection component can include a variety ofsub-components (not shown) to facilitate computing the output image. Inparticular, sub-components pertaining to lens distortion correction,image rectification, and object shape identification can be employed togenerate an output image. Because some objects placed near the planesurface can be captured by the imaging components as well as thoseobjects in contact with the surface, depth measurements may beconsidered when computing the output or touch image. Depth informationcan be computed by relating binocular disparity to the depth of theobject in world coordinates. Binocular disparity refers to the change inimage position an object undergoes when viewed at one position comparedto another. That is, the displacement of the object from one view to theother is related to the depth of the object.

In computer vision, there is a long history of exploiting binoculardisparity to compute the depth of every point in a scene. Such depthsfrom stereo algorithms are typically computationally intensive, can bedifficult to make robust, and can constrain the physical arrangement ofthe cameras. Often such general stereo algorithms are applied inscenarios that in the end do not require general depth maps. In thepresent invention, the interest rests more in the related problem ofdetermining what is located on a particular plane in three dimensions(the display surface) rather than the depth of everything in the scene.

Turning to FIG. 61, a variety of applications can be employed to exploitsurface-based computing in an industrial automation environment. Ahigh-level methodology 6100 is described. At 6102 an object is placed ona computing surface, and the object is identified (and optionallyanalyzed) by a surface based computing application. For example, is adevice is faulty, a user can place the device on the computing surface6030, and the device can be identified or analyzed. Once the device isidentified or analyzed, at 6104 information regarding the object isobtained. At 6106, action can be taken regarding the identified object.For example, if the identified device was damaged, repair information,warranty information, spare parts information, new parts orderinginformation, etc. can be obtained and corresponding action taken (e.g.,submit a warranty claim, request service, order a new part . . . ).

In order to provide additional context for implementation, FIGS. 62 and63 and the following discussion is intended to provide a brief, generaldescription of a suitable computing environment within which disclosedand described components and methods can be implemented. While variousspecific implementations have been described above in the generalcontext of computer-executable instructions of a computer program thatruns on a local computer and/or remote computer, those skilled in theart will recognize that other implementations are also possible eitheralone or in combination with other program modules. Generally, programmodules include routines, programs, components, data structures, etc.that perform particular tasks and/or implement particular abstract datatypes.

Moreover, those skilled in the art will appreciate that theabove-described components and methods may be practiced with othercomputer system configurations, including single-processor ormulti-processor computer systems, minicomputers, mainframe computers, aswell as personal computers, hand-held computing devices,microprocessor-based and/or programmable consumer electronics, and thelike, each of which may operatively communicate with one or moreassociated devices. Certain illustrated aspects of the disclosed anddescribed components and methods may also be practiced in distributedcomputing environments where certain tasks are performed by remoteprocessing devices that are linked through a communications network orother data connection. However, some, if not all, of these aspects maybe practiced on stand-alone computers. In a distributed computingenvironment, program modules may be located in local and/or remotememory storage devices.

FIG. 62 is a schematic block diagram of a sample-computing environment6200 with which the subject invention can interact. The system 6200includes one or more client(s) 6210. The client(s) 6210 can be hardwareand/or software (e.g., threads, processes, computing devices). Thesystem 6200 also includes one or more server(s) 6220. The server(s) 6220can be hardware and/or software (e.g., threads, processes, computingdevices). The servers 6220 can house threads or processes to performtransformations by employing the subject invention, for example.

One possible means of communication between a client 6210 and a server6220 can be in the form of a data packet adapted to be transmittedbetween two or more computer processes. The system 6200 includes acommunication framework 6240 that can be employed to facilitatecommunications between the client(s) 6210 and the server(s) 6220. Theclient(s) 6210 are operably connected to one or more client datastore(s) 6250 that can be employed to store information local to theclient(s) 6210. Similarly, the server(s) 6220 are operably connected toone or more server data store(s) 6230 that can be employed to storeinformation local to the servers 6240.

With reference to FIG. 63, an exemplary environment 6300 forimplementing various aspects of the invention includes a computer 6312.The computer 6312 includes a processing unit 6314, a system memory 6316,and a system bus 6318. The system bus 6318 couples system componentsincluding, but not limited to, the system memory 6316 to the processingunit 6314. The processing unit 6314 can be any of various availableprocessors. Dual microprocessors and other multiprocessor architecturesalso can be employed as the processing unit 6314.

The system bus 6318 can be any of several types of bus structure(s)including the memory bus or memory controller, a peripheral bus orexternal bus, and/or a local bus using any variety of available busarchitectures including, but not limited to, Industrial StandardArchitecture (ISA), Micro-Channel Architecture (MSA), Extended ISA(EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB),Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus(USB), Advanced Graphics Port (AGP), Personal Computer Memory CardInternational Association bus (PCMCIA), Firewire (IEEE 1394), and SmallComputer Systems Interface (SCSI).

The system memory 6316 includes volatile memory 6320 and nonvolatilememory 6322. The basic input/output system (BIOS), containing the basicroutines to transfer information between elements within the computer6312, such as during start-up, is stored in nonvolatile memory 6322. Byway of illustration, and not limitation, nonvolatile memory 6322 caninclude read only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable ROM (EEPROM), or flashmemory. Volatile memory 6320 includes random access memory (RAM), whichacts as external cache memory. By way of illustration and notlimitation, RAM is available in many forms such as synchronous RAM(SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rateSDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), anddirect Rambus RAM (DRRAM).

Computer 6312 also includes removable/non-removable,volatile/non-volatile computer storage media. For example, FIG. 63illustrates a disk storage 6324. The disk storage 6324 includes, but isnot limited to, devices like a magnetic disk drive, floppy disk drive,tape drive, Jaz drive, Zip drive, LS drive, flash memory card, or memorystick. In addition, disk storage 6324 can include storage mediaseparately or in combination with other storage media including, but notlimited to, an optical disk drive such as a compact disk ROM device(CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RWDrive) or a digital versatile disk ROM drive (DVD-ROM). To facilitateconnection of the disk storage devices 6324 to the system bus 6318, aremovable or non-removable interface is typically used such as interface6326.

It is to be appreciated that FIG. 63 describes software that acts as anintermediary between users and the basic computer resources described inthe suitable operating environment 6300. Such software includes anoperating system 6328. The operating system 6328, which can be stored onthe disk storage 6324, acts to control and allocate resources of thecomputer system 6312. System applications 6330 take advantage of themanagement of resources by operating system 6328 through program modules6332 and program data 6334 stored either in system memory 6316 or ondisk storage 6324. It is to be appreciated that the subject inventioncan be implemented with various operating systems or combinations ofoperating systems.

A user enters commands or information into the computer 6312 throughinput device(s) 6336. The input devices 6336 include, but are notlimited to, a pointing device such as a mouse, trackball, stylus, touchpad, keyboard, microphone, joystick, game pad, satellite dish, scanner,TV tuner card, digital camera, digital video camera, web camera, and thelike. These and other input devices connect to the processing unit 6314through the system bus 6318 via interface port(s) 6338. Interfaceport(s) 6338 include, for example, a serial port, a parallel port, agame port, and a universal serial bus (USB). Output device(s) 6340 usesome of the same type of ports as input device(s) 6336. Thus, forexample, a USB port may be used to provide input to computer 6312, andto output information from computer 6312 to an output device 6340.Output adapter 6342 is provided to illustrate that there are some outputdevices 6340 like monitors, speakers, and printers, among other outputdevices 6340, which require special adapters. The output adapters 6342include, by way of illustration and not limitation, video and soundcards that provide a means of connection between the output device 6340and the system bus 6318. It should be noted that other devices and/orsystems of devices provide both input and output capabilities such asremote computer(s) 6344.

Computer 6312 can operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer(s)6344. The remote computer(s) 6344 can be a personal computer, a server,a router, a network PC, a workstation, a microprocessor based appliance,a peer device or other common network node and the like, and typicallyincludes many or all of the elements described relative to computer6312. For purposes of brevity, only a memory storage device 6346 isillustrated with remote computer(s) 6344. Remote computer(s) 6344 islogically connected to computer 6312 through a network interface 6348and then physically connected via communication connection 6350. Networkinterface 6348 encompasses wire and/or wireless communication networkssuch as local-area networks (LAN) and wide-area networks (WAN). LANtechnologies include Fiber Distributed Data Interface (FDDI), CopperDistributed Data Interface (CDDI), Ethernet, Token Ring and the like.WAN technologies include, but are not limited to, point-to-point links,circuit switching networks like Integrated Services Digital Networks(ISDN) and variations thereon, packet switching networks, and DigitalSubscriber Lines (DSL).

Communication connection(s) 6350 refers to the hardware/softwareemployed to connect the network interface 6348 to the bus 6318. Whilecommunication connection 6350 is shown for illustrative clarity insidecomputer 6312, it can also be external to computer 6312. Thehardware/software necessary for connection to the network interface 1248includes, for exemplary purposes only, internal and externaltechnologies such as, modems including regular telephone grade modems,cable modems and DSL modems, ISDN adapters, and Ethernet cards.

What has been described above includes examples of the subjectinvention. It is, of course, not possible to describe every conceivablecombination of components or methodologies for purposes of describingthe subject invention, but one of ordinary skill in the art mayrecognize that many further combinations and permutations of the subjectinvention are possible. Accordingly, the subject invention is intendedto embrace all such alterations, modifications, and variations that fallwithin the spirit and scope of the appended claims.

In particular and in regard to the various functions performed by theabove described components, devices, circuits, systems and the like, theterms (including a reference to a “means”) used to describe suchcomponents are intended to correspond, unless otherwise indicated, toany component which performs the specified function of the describedcomponent (e.g., a functional equivalent), even though not structurallyequivalent to the disclosed structure, which performs the function inthe herein illustrated exemplary aspects of the invention. In thisregard, it will also be recognized that the invention includes a systemas well as a computer-readable medium having computer-executableinstructions for performing the acts and/or events of the variousmethods of the invention.

In addition, while a particular feature of the invention may have beendisclosed with respect to only one of several implementations, suchfeature may be combined with one or more other features of the otherimplementations as may be desired and advantageous for any given orparticular application. Furthermore, to the extent that the terms“includes,” and “including” and variants thereof are used in either thedetailed description or the claims, these terms are intended to beinclusive in a manner similar to the term “comprising.”

1. A computer readable storage medium having stored thereon instructionsthat, in response to execution, cause a computer to perform operations,comprising: receiving information from at least two associated sourcesof a plurality of sources in an industrial control system; combining theinformation from the at least two of the plurality of sources into adisplay object; and generating an interface comprising the displayobject.
 2. The computer readable storage medium of claim 1, wherein thereceiving the information from the at least two associated sourcesincludes receiving the information from at least two of a historicaldata source, a live data source, or an event data source.
 3. Thecomputer readable storage medium of claim 1, the operations furthercomprising: associating at least two sources of the plurality of sourcesyielding the at least two associated sources, and wherein theassociating further comprises associating the at least two sources ofthe plurality of sources based on a preference of a user.
 4. Thecomputer readable storage medium of claim 3, the operations furthercomprising: inferring the preference of the user based on an identity ofthe user.
 5. The computer readable storage medium of claim 4, whereinthe inferring further comprises inferring the preference of the userbased on a role of the user within the industrial control system.
 6. Thecomputer readable storage medium of claim 4, wherein the inferringfurther comprises inferring the preference of the user based on alocation of the user.
 7. The computer readable storage medium of claim6, wherein the inferring further comprises inferring the preference ofthe user based on matching the location of the user with a location ofthe at least two sources of the plurality of different sources.
 8. Thecomputer readable storage medium of claim 4, wherein the inferringfurther comprises inferring the preference of the user based on ahistorical user preference.
 9. The computer readable storage medium ofclaim 3, wherein the associating further comprises associating the atleast two sources of the plurality of different sources based on asecurity setting in the industrial control system.
 10. The computerreadable storage medium of claim 3, wherein the associating furthercomprises associating the at least two sources of the plurality ofdifferent sources based on a task within the industrial control system.11. The computer readable storage medium of claim 1, wherein thereceiving the information includes receiving the information from anequipment source within the industrial control system.
 12. The computerreadable storage medium of claim 1, wherein the receiving theinformation includes receiving the information from a network device.13. The computer readable storage medium of claim 12, wherein thereceiving the information includes receiving the information from atleast one of an Input/Output module, an industrial controller, or acommunications module.
 14. A device, comprising: a mash-up componentconfigured to associate at least two sources in an industrial controlsystem, wherein the at least two sources comprise at least two of anevent source, a historical data source, or a live data source; a bindingcomponent configured to combine information from the at least twosources into a display object; and a visualization component configuredto generate the a display object.
 15. The device of claim 14, whereinthe information from the at least two sources comprises data from afirst source and variables from a second source.
 16. The device of claim15, wherein the binding component is further configured to bind the datafrom the first source to the variables from the second source.
 17. Thedevice of claim 15, wherein the binding component is further configuredto bind the data from the first source and the variables from the secondsource to a function.
 18. The device of claim 14, further comprising aninterface configured to display the display object.
 19. The device ofclaim 14, wherein the mash-up component is further configured to updatethe mash-up in real time according to changes in the information.
 20. Amethod, comprising: retrieving information from at least two of ahistorical data source, a live data source, or an event data source inan industrial control system; linking the information from the at leasttwo of the historical data source, the live data source, or the eventdata source; and generating a mash-up of the information from the atleast two of the historical data source, the live data source, or theevent data source.